Derived from the Top.Uploaders Mod by Andy Nicholas 1988-89 Adapted for Top.Downloaders Mod by jpe for ProBOARD; August 14th, 1989 The following code, placed after the label term1 in your main segment will allow you to keep track of the top 10 downloaders for your supertac section: ;find.. Term1 on nocar clear ;insert the following code immediately following this label... close:clear #8:f$="b8:top.downloaders" a=0:open #1,f$ for x=1 to 10:input #1,i$,a1,a2 if (a3$=i$) and (d2=a2) x=10:next:goto norite if (d1>a1) and not(a) print #8,a3$,d1,d2:a=1:goto top1d if (d1=a1) and (d2>a2) and not(a) print #8,a3$,d1,d2:a=1 Top1d if a3$=i$ next:goto top2d print #8,i$,a1,a2:next Top2d close:if not(a) goto norite kill f$:create f$ open #1,f$:copy #8,#1:close a=x Norite close:clear #8:f$="b8:top.uploaders" a=0:open #1,f$ for x=1 to 10:input #1,i$,a1,a2 if (a3$=i$) and (u2=a2) x=10:next:goto nowrite if (u1>a1) and not(a) print#8,a3$,u1,u2:a=1:goto top1 if (u1=a1) and (u2>a2) and not(a) print#8,a3$,u1,u2:a=1 ; Above is the Downloaders.Mod, Below is the Uploaders.Mod Top1 if a3$=i$ next:goto top2 print#8,i$,a1,a2:next Top2 close:if not(a) goto nowrite kill f$:create f$ open #1,f$:copy #8,#1:close a=x print\":"chr$(61,77)":" print": "chr$(15)" By the way... You are one of the Top 10 Uploaders! "chr$(14)" :" print":"chr$(61,77)":"\ Nowrite ; the rest of the code continues here . . . ----------------------------------------------------------------------------- The following code will print out a list of the top 10 downloaders... place this usually on entry to the ae section, something like: if i$="A" pop:gosub topd:link "a:supertac" ; The actual code is as follows, placed in the main segment. Topd print \"Top 10 downloaders as of "date$\ open #1,"b8:top.downloaders" for x=1 to 10:input #1,i$,a1,a2 a$=str$(a2):if a1 a$=str$(a1)+right$("000"+str$(a2),4) print x". "left$(i$+"....................",20)" "a$" Blocks" next:close:return ; The Above Shows The Top.Downloaders List Seperately ; The Below Shows The Two Lists Combined onto one 80 Col. Screen...by jpe ; Use Gosub top as before.... Top close print\"Top 10 Uploaders as of "date$; print chr$(32,9)"Top 10 Downloaders as of "date$\ open #1,"b8:top.uploaders":open #2,"b8:top.downloaders" for x=1 to 10:input #1,i$,a1,a2:input #2,ii$,x1,x2 x$=str$(x2):if x1 x$=str$(x1)+right$("000"+str$(x2),4) a$=str$(a2):if a1 a$=str$(a1)+right$("000"+str$(a2),4) f$=str$(x)+". "+left$(i$+"....................",20)+" "+a$+" Blocks" print left$(f$+" ",40); f$=str$(x)+". "+left$(ii$+"....................",20)+" "+x$+" Blocks" print f$:next:close:x$="WhackaKey To Continue... " print \\chr$(32,(20-len(x$)/2))x$;:geti$ return ----------------------------------------------------------------------------- The following code will enter the user's uploaded blocks and downloaded blocks when placed in your logon segment after the label: VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV If you already have this in for the Top.Uploaders Mod then your set! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ; *** Main Logon Routine *** login ;after the following code under this label, place the next code segment a1$=d1$:a2$=d2$:a3$=d3$:a4$=d4$:a5$=d5$ tc=byte(1)+nibble(1)*256:bp=byte(2)+nibble(2)*256 dl=byte(3)+nibble(3)*256:ul=byte(4)+nibble(4)*256 ;this is the code that needs to be entered in the logon segment to record and retrieve the block counts correctly. u1=byte(10)+byte(11)*256:u2=byte(12)+byte(13)*256 d1=byte(14)+byte(15)*256:d2=byte(16)+byte(17)*256 ul$=str$(u2):if u1 ul$=str$(u1)+right$("000"+str$(u2),4) dl$=str$(d2):if d1 dl$=str$(d1)+right$("000"+str$(d2),4) . . . ----------------------------------------------------------------------------- The following code will save the user's blocks uploaded and blocks downloaded when they log off... look in your main segment under the label: VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV If you already have this in for the Top.Uploaders Mod then your set! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ term2 ;the following code will occur, then insert the code after it: open #1,"b:users":nibble(6)=nibble(6)+1 byte(0)=info(3) byte(1)=tc mod 256:nibble(1)=tc/256 byte(2)=bp mod 256:nibble(2)=bp/256 byte(3)=dl mod 256:nibble(3)=dl/256 byte(4)=ul mod 256:nibble(4)=ul/256 byte(5)=lr mod 256:byte(6)=lr/256 ;add this code following the previous code which should have already been there: byte(10)=u1 mod 256:byte(11)=u1/256 byte(12)=u2 mod 256:byte(13)=u2/256 byte(14)=d1 mod 256:byte(15)=d1/256 byte(16)=d2 mod 256:byte(17)=d2/256 ;after that code, the following code should be immediately after the previous stuff, and you need to add one more line, which kills the batch file after the user logs off the system: ;special note: if drive H: is a ram drive, the time to batch a file into the list is reduced enormously. when$="x":position #1,128,un print #1,a1$,a2$\a3$\a4$,a5$:position #1,128,un,70 write #1,ram,58:close ;add this: kill "h:batch" . . (code continues) . Adapted to Top.Downloaders by jpe for ProBOARD @ 805-239-4292 08/14/89 @ 15:20 ; EOF